# 在3_OOP.py文件内，学习了面向对象编程。在这里写一个学生类进行复习。

#定义一个学生类
# 要求:
#1.属性包括学生姓名、学号，以及语数英三科的成绩
#2.能够设置学生某科目的成绩
#3.能够打印出该学生的所有科目成绩

# 2025年2月21日16:27:20
class Student:
    def __init__(self,name,student_id):
        """
        :param student_name:
        :param student_id:
        """
        self.name = name
        self.student_id =student_id
        self.math_score = 0
        self.chinese_score = 0
        self.english_score = 0
        # 这里可以用字典 kv对
        self.grade ={"数学":0,"语文":0,"英语":0}


    def setMathScore(self,math_score):
        self.math_score = math_score

    def setChineseScore(self, chinese_score):
        self.chinese_score = chinese_score

    def setEnglishScore(self, english_score):
        self.english_score = english_score

    def setAllScore(self):
        print("设置学生所有成绩")
        self.math_score=input("数学成绩是：")
        self.chinese_score=input("语文成绩是：")
        self.english_score=input("英语成绩是：")

    def getAllScore(self):
        print("打印该学生的所有成绩")
        # print(f"数学成绩：{self.math_score}")
        # print(f"语文成绩：{self.chinese_score}")
        # print(f"英语成绩：{self.english_score}")
        for kemu,score in self.grade.items():
            print(f"{kemu}的成绩是：{score}")

    # 更正函数名小写
    def set_all_grade(self):
        print("设置学生的成绩")
        for course in self.grade:
            self.grade[course]=int(input(f"{course}的成绩是："))

stu1 = Student("白垩",100)

# stu1.setChineseScore(100)
# stu1.setMathScore(95)
# stu1.setEnglishScore(65)
# stu1.setAllScore()
# stu1.getAllScore()

# 2025年2月21日16:37:30

stu1.set_all_grade()
stu1.getAllScore()
# 学习关于字典的for in 循环
